"""
需求：
参考项目的登录功能（登录时需要输入用户名、密码、验证码），至少设计3条测试用例
要求1：定义变量保存测试数据（包括不同测试数据对应的测试结果）
要求2：至少写出3种以上不同的数据格式
要求3：遍历测试数据并打印到控制台，数据格式“用户名：xxx 密码：xxx 验证码：xxx 期望结果：xxx”
"""
# 分析：
# 1.登录要素：用户名、密码、验证码。
# 2.测试维度：
#   正确 / 错误 用户名
#   正确 / 错误 密码
#   正确 / 错误 验证码
# 3.数据格式：
#   dict（最常用）
#   list（顺序存储，省键名）
#   tuple（不可变，轻量）
# 4.统一遍历：无论哪种格式，最终都转成 dict 打印，保证输出一致。

# 登录功能测试用例：3 种数据格式 + 遍历打印
# 1) dict 格式（最直观）
dict_cases = [
    {"user": "admin",   "pwd": "123456", "code": "8888", "expect": "登录成功"},
    {"user": "wrong",   "pwd": "123456", "code": "8888", "expect": "用户名或密码错误"},
    {"user": "admin",   "pwd": "000000", "code": "8888", "expect": "用户名或密码错误"}
]

# 2) list 格式（顺序对应：user, pwd, code, expect）
list_cases = [
    ["alice",   "abc123", "1111", "登录成功"],
    ["bob",     "xyz999", "2222", "验证码错误"],
    ["charlie", "qwe000", "3333", "用户名不存在"]
]

# 3) tuple 格式（不可变，轻量）
tuple_cases = [
    ("root",   "root2025", "6666", "登录成功"),
    ("guest",  "guest123", "6666", "密码错误"),
    ("root",   "root2025", "0000", "验证码错误")
]

# 统一打印函数
def print_cases(cases, fmt):
    """按统一格式打印测试数据"""
    for idx, case in enumerate(cases, 1):
        if fmt == "dict":
            user, pwd, code, expect = case["user"], case["pwd"], case["code"], case["expect"]
        elif fmt == "list":
            user, pwd, code, expect = case
        elif fmt == "tuple":
            user, pwd, code, expect = case
        print(f"用例{idx} 用户名：{user} 密码：{pwd} 验证码：{code} 期望结果：{expect}")

# 遍历并输出
print("--- dict 格式 ---")
print_cases(dict_cases, "dict")

print("\n--- list 格式 ---")
print_cases(list_cases, "list")

print("\n--- tuple 格式 ---")
print_cases(tuple_cases, "tuple")